home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Micro on the Apple Volume 1 (1981)(Micro Ink)[no boot].zip / Micro on the Apple Volume 1 (1981)(Micro Ink)[no boot].do / BUBBLE.int < prev    next >
Text File  |  1996-12-24  |  3KB  |  86 lines

  1. 10 REM  ************************
  2. 12 REM  *                      *
  3. 14 REM  *   SORTING REVEALED   *
  4. 16 REM  * RICHARD C. VILE, JR. *
  5. 18 REM  *                      *
  6. 20 REM  *        BUBBLE        *
  7. 22 REM  *                      *
  8. 24 REM  *  COPYRIGHT (C) 1981  *
  9. 25 REM  *    MICRO INK, INC.   *
  10. 26 REM  * CHELMSFORD, MA 01824 *
  11. 27 REM  *  ALL RIGHTS RESERVED *
  12. 28 REM  *                      *
  13. 29 REM  ************************
  14. 30 REM 
  15. 40 TEXT :CALL -936
  16. 41 DIM A(100)
  17. 42 KBD=-16384:CLR=-16368:TITLE=500:INTRO=1000
  18. 44 DISPLAY=600:WAIT=800:COMPARE=900:INTERCHANGE=950
  19. 46 MUSIC=10473:TIME=766:TIMBRE=765:PITCH=767
  20. 48 GOSUB INTRO
  21. 50 GOSUB TITLE
  22. 90 FOR R=0 TO 100:A(R)=32767:NEXT R
  23. 100 FOR I=0 TO N
  24. 105 A(I)= RND (100):X=I:GOSUB DISPLAY
  25. 108 IF N=0 THEN 150
  26. 110 NEXT I
  27. 150 FOR I=1 TO NUM-1
  28. 152 FLAG=0
  29. 155 FOR J=0 TO N-I
  30. 158 FOR T=0 TO PDL (1):NEXT T
  31. 159 GOSUB COMPARE
  32. 160 IF A(J)<=A(J+1) THEN 200
  33. 163 X=100: POKE 50,127:A(100)=A(J):GOSUB DISPLAY
  34. 165 KEEP=A(J):GOSUB INTERCHANGE:X=J
  35. 170  POKE 50,63
  36. 173 A(J)=A(J+1):GOSUB DISPLAY:GOSUB INTERCHANGE: POKE 50,255
  37. 175 GOSUB DISPLAY:X=J+1: POKE 50,63
  38. 180 A(J+1)=KEEP:GOSUB DISPLAY:GOSUB INTERCHANGE: POKE 50,255
  39. 185 GOSUB DISPLAY
  40. 190 FLAG=1
  41. 195 KEY= PEEK (KBD):IF KEY<128 THEN 200
  42. 196  POKE CLR,0:GOSUB WAIT
  43. 200 NEXT J
  44. 202 IF FLAG=0 THEN 208
  45. 205 NEXT I
  46. 208 VTAB 24:TAB 21:PRINT "FINISHED<CTRL-G>";
  47. 210 IF  PEEK (KBD)<128 THEN 210
  48. 220  POKE CLR,0:CALL -936:GOTO 48
  49. 500 TEXT :CALL -936
  50. 510 VTAB 1:FOR I=0 TO 9:TAB 7+3*I:PRINT I;:NEXT I
  51. 515 VTAB 2:TAB 7:FOR I=0 TO 9:PRINT "---";:NEXT I
  52. 520 FOR J=0 TO 9:VTAB 3+2*J:TAB 4:PRINT J;"! ";:NEXT J
  53. 525 VTAB 23:TAB 1:PRINT "TEMP=";:TAB 20
  54. 528 PRINT "BUBBLE SORT"
  55. 530 RETURN 
  56. 600 COL=X MOD 10
  57. 610 ROW=X/10
  58. 620 VTAB 2*ROW+3:TAB 7+3*COL
  59. 630 IF A(X)<10 THEN PRINT " ";
  60. 635 PRINT A(X);
  61. 640 RETURN 
  62. 800 IF KEY<> ASC("Q") THEN 810
  63. 805 TEXT :CALL -936:END 
  64. 810 VTAB 2*ROW+3:TAB 6+3*COL:PRINT ">";
  65. 815 KEY= PEEK (KBD):IF KEY<128 THEN 810
  66. 817 VTAB 2*ROW+3:TAB 6+3*COL:PRINT " ";
  67. 820  POKE CLR,0:RETURN 
  68. 900 REM  *** TO REMOVE SOUND, 901 IS ADDED ***
  69. 901 RETURN 
  70. 902  POKE PITCH,10: POKE TIME,5:CALL MUSIC
  71. 905 FOR DE=1 TO PDL (1):NEXT DE
  72. 910 RETURN 
  73. 950 REM  *** TO REMOVE INTERCHANGE SOUNDS, ADD 951 ***
  74. 951 RETURN 
  75. 952  POKE PITCH,49: POKE TIME,3:CALL MUSIC
  76. 955 FOR DE=1 TO PDL (1):NEXT DE
  77. 960 RETURN 
  78. 1000 VTAB 10:TAB 5:PRINT "I WILL SORT UP TO 100 POSITIVE"
  79. 1001 TAB 5:PRINT "INTEGERS INTO ASCENDING"
  80. 1002 TAB 5:PRINT "ORDER USING THE BUBBLE SORT."
  81. 1008 VTAB 15:TAB 10:INPUT "VALUE OF N, PLEASE",NUM:N=NUM-1
  82. 1009 IF NUM<=0 THEN 805
  83. 1010 IF NUM<=100 THEN RETURN 
  84. 1015 TAB 10
  85. 1020 PRINT "TOO BIG!!!!":GOTO 1000
  86.